﻿using System;
using Runtime.Services.Battle;

namespace Runtime.Services.BattleAttack {

    /// <summary>
    /// 攻击命中方式
    /// </summary>
    public readonly struct DFR_BattleAttackHit {

        /// <summary>
        /// 攻击方式
        /// </summary>
        public DFR_BattleAttackType Type { get; init; }

        /// <summary>
        /// 范围参数
        /// <see cref="DFR_BattleAttackType.Point"/>时无意义
        /// <see cref="DFR_BattleAttackType.Radius"/>时表示圆半径
        /// <see cref="DFR_BattleAttackType.Prop"/>时表示四边型宽度
        /// </summary>
        public F64 Range { get; init; }

        /// <summary>
        /// 额外参数
        /// <see cref="DFR_BattleAttackType.Point"/>时为1
        /// <see cref="DFR_BattleAttackType.Radius"/>时为伤害系数
        /// <see cref="DFR_BattleAttackType.Prop"/>时为可命中个数
        /// </summary>
        public F64 Extra { get; init; }
    }
}
